using B.S.NewMedical.ErrorCode;
using MediatR;

namespace B.S.NewMedical.Api.Write.Application.Command.Doctor
{
    /// <summary>
    /// 医疗卡充值命令
    /// </summary>
    public class RechargeCardCommand : IRequest<ApiResult<RechargeResultDto>>
    {
        /// <summary>
        /// 就诊卡号
        /// </summary>
        public string CardNo { get; set; }

        /// <summary>
        /// 充值金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 支付方式
        /// </summary>
        public string PayChannel { get; set; }

        /// <summary>
        /// 操作员ID
        /// </summary>
        public int OperatorId { get; set; }
    }

    /// <summary>
    /// 充值结果DTO
    /// </summary>
    public class RechargeResultDto
    {
        /// <summary>
        /// 充值前余额
        /// </summary>
        public decimal BeforeBalance { get; set; }

        /// <summary>
        /// 充值金额
        /// </summary>
        public decimal RechargeAmount { get; set; }

        /// <summary>
        /// 充值后余额
        /// </summary>
        public decimal AfterBalance { get; set; }

        /// <summary>
        /// 充值时间
        /// </summary>
        public DateTime RechargeTime { get; set; }
    }
} 